MIMO technology has been widely implemented in wireless communications to improve performance. An underlying idea in MIMO systems is space-time signal processing, which effectively takes advantage of the separability of the spatial channels between the multiple transmit and multiple receive antennas of the MIMO channels to provide higher data rates without a concomitant increase in spectral usage or, alternatively, increased robustness and a lower error rate. Broadly speaking, coding a signal in space and/or time (spatial, time and space-time diversity) increases robustness by effectively providing numerous versions of a signal, whilst multiplexing in space (spatial multiplexing) effectively increases the available data rate. In a fixed configuration MIMO system a choice must be made as to this trade-off between spatial-multiplexing and space-time-diversity although one of the major advantages of MIMO systems is generally seen as their ability to provide an increased data rate transmission.
A conventional MIMO system, with nT transmit and nR receive antennas, can be modelled mathematically in the complex narrowband notation as:y=Hx+n  (1)where H is the nR×nT channel matrix, x is the nT×1 transmit vector of complex symbols with an imposed transmit power constraint, for instance ∥x∥2=1 without loss of generality, y is the nR×1 receive vector, and n is an nR×1 zero-mean white Gaussian distributed noise vector with variance σn2.
FIG. 1 shows a typical MIMO data communications system 10. A data source 12 provides data (comprising information bits or symbols) to a channel encoder 14. The channel encoder typically comprises a convolutional coder such as a recursive systematic convolutional (RSC) encoder, or a stronger so-called turbo encoder (which includes an interleaver). More bits are output than are input, and typically the rate is one half or one third. The channel encoder 14 is followed by a channel interleaver 16 and, in the illustrated example, a space-time encoder 18. The space-time encoder 18 encodes an incoming symbol or symbols as a plurality of code symbols, which are mapped to complex modulation symbols such as QPSK (quadrature phase shift keying), M-QAM (M-ary quadrature amplitude modulation) for simultaneous transmission from each of a plurality of transmit antennas 20.
Space-time encoding may be described in terms of an encoding machine, described by a coding matrix, which operates on the data to provide spatial and temporal transmit diversity or multiplexing; this is typically followed by a modulator to provide coded symbols for transmission. Space-frequency encoding may additionally (or alternatively) be employed. Thus, broadly speaking, incoming symbols and processed versions (such as symbols which are phase-shifted and scaled according to the Space-Time code algorithm) are distributed into a grid having space and time and/or frequency coordinates, for increased diversity. Where space-frequency coding is employed the separate frequency channels may be modulated onto OFDM (orthogonal frequency division multiplexed) carriers, a cyclic prefix generally being added to each transmitted OFDM symbol to mitigate the effects of channel dispersion.
The encoded transmitted signals propagate through MIMO channel 22 to receive antennas 24, which provide a plurality of inputs to a space-time (and/or frequency) decoder 26. This has the task of removing the effect of the encoder 18. The output of the decoder 26 comprises a plurality of signal streams, one for each transmit antenna, each carrying so-called soft or likelihood data on the probability of a transmitted symbol having a particular value. This data is provided to a channel de-interleaver 28 which reverses the effect of channel interleaver 16, and then to a channel decoder 30, such as a Viterbi decoder, which decodes the convolutional code. Typically channel decoder 30 is a SISO (soft-in soft-out) decoder, that is receiving symbol (or bit) likelihood data and providing similar likelihood data as an output rather than, say, data on which a hard decision has been made. The output of channel decoder 30 is provided to a data sink 32, for further processing of the data in any desired manner.
In some communications systems so-called turbo or iterative decoding is employed in which a soft output from channel decoder 30 is provided to a channel interleaver 34, corresponding to channel interleaver 16, which in turn provides soft (likelihood) data to decoder 26 for iterative space-time (and/or frequency) and channel decoding. (It will be appreciated that in such an arrangement channel decoder 30 provides complete transmitted symbols to decoder 26, that is for example including error check bits.)
A Multi-User MIMO (MU-MIMO) system is a type of advanced MIMO system that exploits the availability of multiple independent terminals (or users) in order to enhance the communication capabilities of each individual terminal. Essentially, all users in the system are coordinated for communications by considering the requirements of each user, such as scheduling algorithms, Quality of Service requirements, and so on. The fundamental advantage of a MU-MIMO system is that a direct gain in multiple access capacity can be achieved by allowing spatial multiplexing gain to be obtained at a base station, without having the need of multiple antenna terminals. This allows smaller terminals to be developed at a low cost, while keeping the implementation cost and complexity at the base station. An example of a MU-MIMO scheme is Space-Division Multiple Access (SDMA), which allows a base station to transmit (or receive) a signal to (or from) multiple users in the same band simultaneously.
An example of a practical implementation of a conventional MU-MIMO system 40 comprising a transmitter device 42, and a plurality of receiver devices 46, 48 is illustrated in FIG. 2. In this example, the transmitter device 42 is operable to transmit signals to receiver devices 46, 48 in a wireless network through a wireless channel. In this illustrated example, three transmit antennas 44 are provided, though practical implementations may include more (or fewer) antennas depending on the application.
Precoding algorithm is generally applied to support multi-user MIMO (MU-MIMO) communication systems. Precoding algorithm can be sub-divided into linear and nonlinear precoding.
Linear precoding is essentially a generalisation of a conventional SDMA scheme, where users are assigned different precoding matrices at the transmitter. The precoders are typically designed jointly based on channel state information (CSI) of all the users, although other sources of information are equally possible, for example a code book entry.
It has been noted that non-linear precoding provides better performance than linear precoding in that the error rate performance can be improved through additional transmit signal processing. However, as will be described in the forthcoming paragraphs, non-linear precoding requires a nonlinear operation to be performed at the receiver in order to reconstruct the transmitted symbols.
Precoding can be also employed in OFDM systems. In such a system, it can be applied, for example, for each subcarrier separately or for a group of subcarriers. For example, an OFDM system having 512 subcarriers can have a joint transmit power constraint of 512, or an average transmit power constraint ∥x∥2=1, without loss of generality.
Precoding can be achieved in several ways. For example, the Moore-Penrose pseudoinverse P=H+=HH(HHH)−1 can be applied at the transmitter side, which, in one network configuration, can be at a base station. If nT=nR, P becomes simply P=H−1. This precoding step is necessary for instance in multi-user MIMO systems, wherein each element of y will be assigned to an independent user terminal (UT), and therefore no cooperation will be possible between the UTs. In such a case, the precoding matrix P will suppress the inter-user interference; nevertheless the above technique may also be employed in a single-user MIMO system or a multi-user multi-antenna MIMO system, where one or more UTs have more than one receive antenna.
A further example of precoding is the regularised pseudoinverse P=HH(HHH+αI)−1, as set out in “A vector-perturbation technique for near-capacity multiantenna multiuser communication—part I: channel inversion and regularization,” (C. B. Peel, B. M. Hochwald, and A. L. Swindlehurst, IEEE Trans. on Commun., vol. 53, no. 1, pp. 195-202, January 2005), hereinafter referred to as “Peel et al.”, where α=Kσn2 is defined, and K is the number of spatial streams.
However, a drawback of precoding by means of the pseudoinverse channel matrix, or regularised pseudoinverse channel matrix (or in general any non-unitary matrix) is that it can lead to an increase in transmitted power. This is addressed in “A vector-perturbation technique for near-capacity multiantenna multiuser communication—part II: perturbation,” (B. M. Hochwald, C. B. Peel, and A. L. Swindlehurst, IEEE Trans. on Commun., vol. 53, no. 3, pp. 537-544, March 2005) hereinafter referred to as “Hochwald et al.”. Variations in transmitted power are undesirable, particularly as they may violate performance constraints for a device. They may also lead to increased power consumption, which is an important factor in the design of a handheld or otherwise portable communications device.
To illustrate problems faced and identified in the prior art, an example will now be given. In this example, u denotes the symbols, prior to precoding, to be transmitted. The vector is precoded by means of a precoding matrix P, which is chosen to be the Moore-Penrose pseudoinverse P=H+, ass=Pu  (2)
The Moore-Penrose pseudoinverse is well known, but is particularly referenced in “On the reciprocal of the general algebraic matrix” (E. H. Moore; Bulletin of the American Mathematical Society 26: 394-395) and “A generalized inverse for matrices” (R. Penrose; Proceedings of the Cambridge Philosophical Society 51: 406-413).
Prior to transmission, the precoded signal s has to be scaled in order to fulfil the power restriction ∥x∥2=1, such that
                    x        =                  s                      γ                                              (        3        )            where γ=∥s∥2=∥Pu∥2 as set out in Peel et al. This approach assumes perfect knowledge of γ at the receiver side.
The normalisation factor is often very large because of the large singular values of the precoding matrix P, i.e., of the pseudoinverse of the channel matrix H (such as noted in papers by Hochwald et al. and by Peel et al., cited above). This can cause noise amplification at the receiver side since the receive symbol vector y=√{square root over (γ)}(Hx+n), or equivalently,
            y              γ              =          (              Hx        +        n            )        ,is impaired by a scaled Gaussian noise vector √{square root over (γn)}. In a MIMO OFDM system, the instantaneous normalisation factor of a transmission can be determined for each subcarrier or the average normalisation factor can be determined as a mean value for all the subcarriers, or any other grouping of resources to resource blocks and the like. This may be, for example in an Orthogonal frequency-division multiple access (OFDMA) MIMO system, where different subcarriers are assigned to different groups of terminals, thus representing multiple multi-user MIMO configurations.
Hochwald et al. suggests that one way of overcoming this noise amplification is to ensure that the transmitted data u does not lie along the singular values of H−1 (or H+, as the case may be). This approach is also described in U.S. Pat. No. 7,317,764. The idea is to allow u to be perturbed by a complex vector. The perturbed data vector is then:û=u+τl  (4)where τ is a positive real number and l is a complex integer vector. The scalar τ is selected to be sufficiently large that the receiver may apply element-wise a modulo function to y
                                          u            ^                    i                =                                            f              τ                        ⁡                          (                              y                i                            )                                =                                    y              i                        -                                          ⌊                                                                            y                      i                                        +                                          τ                      /                      2                                                        τ                                ⌋                            ⁢              τ                                                          (        5        )            to obtain û, where └ ┘ rounds towards the nearest integer closest to zero. It will be noted that fτ(yi) is applied to real and imaginary parts separately. It should be recognised by the reader that û is not quantised and therefore contains additive noise.
Hochwald et al. also suggests that the constellation shift parameter τ should be
                    τ        =                  2          ⁢                      (                                                                              c                                                  max                            +                              Δ                2                                      )                                              (        6        )            where |c|max is the absolute value of the real or imaginary part of the constellation max symbol with greatest magnitude, and Δ is the smallest distance between two constellation symbols. It will be understood that the foregoing is set out for M-QAM constellations; non-square constellations such as PSK (Phase shift keying) or other, such as hexagonal constellations, may have a constellation shift parameter τ that is essentially the distance between the centres of repeated equidistantly shifted constellations.
FIG. 3 illustrates the modulo operation at the receiver side for a 16-QAM constellation. The received symbol, marked with an ‘x’, is shifted from the extended constellation (unfilled points) back to the original constellation (filled points), in which the symbol detection stage will be done. As will be appreciated by the reader, the average number of neighbouring points will be increased, as points of the original constellation which were previously considered to be at the edge of the constellation now have a complete set of neighbours. This has an impact on the error protection of the outer symbols. The shift parameter τ, as the distance between the centres of the respective constellations, can lower this impact if it is chosen to be greater than defined in Equation 6.
In accordance with the above, for a given τ, l can be selected in order to minimise γ=∥s∥2, such that:l=arg minl′∥P(u+τl′)∥2  (7)
This is an integer least squares problem in the dimension of u, for the solution of which there exist a large number of algorithms. For instance, the reader is directed to “Closest point search in lattices” (E. Agrell, T. Eriksson, A. Vardy, and K. Zeger, IEEE Transactions on Information Theory, vol. 48, no. 8, pp. 2201-2214, August 2002) and to the references noted in Hochwald et al., especially the Fincke-Pohst algorithm, which is used for space-time demodulation in “Lattice code decoder for space-time codes,” (M. O. Damen, A. Chkeif, and J.-C. Belfiore, IEEE Commun. Letters, vol. 4, pp. 161-163, May 2000), where it is called a sphere decoder. Because this algorithm can be used for encoding the data vector u, it is called a “sphere encoder”.
If  is defined as the set:={a+ib|a,bε}, with i2=−1,that is, the set of complex-valued integers, then an approximation of l can be calculated, and the perturbation vector is then given aslapprox=−TQτGK{T−1u}, where the quantisation function {·} rounds the K-dimensional vector towards the nearest complex-valued point of the K-dimensional integer lattice, scaled with τ (depicted by ), where K is the number of spatial streams, i.e., the dimension of the vector u.
A practical implementation as an integer rounding function, indicated by , can be
                              l          approx                =                              -            T                    ⁢                    ⁢                                    {                                                                    T                                          -                      1                                                        ⁢                  u                                τ                            }                        .                                              (        8        )            
Due to the denominator τ, the complex-integer-rounding function operates in a scaled integer lattice.
This is as set out in “Lattice-reduction-aided broadcast precoding,” (C. Windpassinger, R. F. H. Fischer, and J. B. Huber, IEEE Trans. on Commun., vol. 52, no. 12, pp. 2057-2060, December 2004—“Windpassinger et al.”).
A number of lattice reduction algorithms exist. Any one of them can be used to calculate a transformation matrix, T, such that a reduced basis, {tilde over (P)}, is given by PT. The matrix T contains only complex integer entries and its determinant is |det(T)|=1 and thus is called a unimodular matrix.
The unimodular matrix T is given by means of a lattice reduction of the precoding matrix P with the LLL algorithm “Factoring Polynomials with Rational Coefficients” (A. Lenstra, H. Lenstra and L. Lovasz, Math Ann., Vol. 261, pp. 515-534, 1982.), but any other algorithm for reducing a lattice basis is also applicable.
The normalisation factor γ is then determined, by means of a closest point approximation, as:γ=∥s∥2=∥P(u+τlapprox)∥2  (9)
The complete transmission employing non-linear precoding can thus be formulated as
                    y        =                  (                                    H              ⁡                              (                                                      P                    ⁡                                          (                                              u                        +                                                  τ                          ⁢                                                                                                          ⁢                          l                                                                    )                                                                            γ                                                  )                                      +            n                    )                                    (        10        )            with y being the receive signal of a single user or a plurality of users, each receiving one or more elements yi of the vector y.
A block diagram of a transmission train employing data perturbation is shown in FIG. 4. As illustrated in FIG. 4, vector perturbation is carried out on the transmitted data u in a vector perturbation unit 60. The perturbed data is passed to be multiplied by the pseudo inverse H+ in block 62, which is equivalent to equation 2 set out above. The next block 64 represents division by √{square root over (γ)}, which is a normalisation step. The resultant vector x is re-multiplied by the channel matrix H (in block 66), to which is added a noise vector n. In block 68, the resultant vector y is re-multiplied by the square root of the normalisation factor γ and then modulo τ is applied to arrive at the perturbed data vector û.
By way of background, the Tomlinson-Harashima precoding (herein referred to as multi-user THP) will now be described. In this example the channel H is decomposed asH=PTBW−1  (11)
Accordingly, it is possible to defineQR=(PTH)−1  (12)where P is a permutation matrix such that PPT=I, Q is a unitary matrix, and R is an upper triangular matrix. The feedback matrix B with ones in the diagonal is defined as:B=GR  (13)where the scaling matrix G is G=diag(r11−1, r22−1, . . . , rKK−1). Accordingly, the feed forward matrix W can then be defined asW=QG−1  (14)
It will be appreciated that the scaling matrix is applied to obtain equal power distribution across the transmit antennas. Therefore, the unnormalised transmit vector can be defined ass=WB−1P(u+τl)  (15)where τ is the perturbation shift distance known from vector perturbation.
The transmitted symbols are determined by
                    x        =                  s                      γ                                              (        16        )            where γ=∥s∥2, such that the received symbols are given as:
                              y          =                      Hx            +            n                          ⁢                                  ⁢                  y          =                                    H              (                                                                    WB                                          -                      1                                                        ⁢                                      P                    ⁡                                          (                                              u                        +                                                  τ                          ⁢                                                                                                          ⁢                          l                                                                    )                                                                                        γ                                            )                        +            n                          ⁢                                  ⁢                  y          =                                                    P                T                            ⁢                                                BW                                      -                    1                                                  (                                                                            WB                                              -                        1                                                              ⁢                                          P                      ⁡                                              (                                                  u                          +                                                      τ                            ⁢                                                                                                                  ⁢                            l                                                                          )                                                                                                  γ                                                  )                                      +            n                          ⁢                                  ⁢                  y          =                                                    (                                  u                  +                                      τ                    ⁢                                                                                  ⁢                    l                                                  )                                            γ                                      +            n                                              (        17        )            
A block diagram of a multi-user THP transmission is shown in FIG. 5. As illustrated in FIG. 5, the transmitted data u is multiplied by the transpose of the permutation matrix P in block 80. The computation of the perturbed and precoded vector s in equation (15) can be formulated recursively in block 82 due to the triangular structure of B, in which a temporary vector s is required, and accordingly an initial element is defined as: sK=[PTu]K,  (18)which is the transmit symbol of the last (K-th) stream. For i=K−1, . . . , 1 the remaining elements of s can be determined in block 82 as
                                          s            _                    i                =                  mod          (                                                                      [                                                            P                      T                                        ⁢                    u                                    ]                                i                            -                                                ∑                                      j                    =                                          i                      +                      1                                                        K                                ⁢                                                      B                    ij                                    ⁢                                                            s                      _                                        j                                                                        ,            τ                    )                                    (        19        )            where mod is the modulo function mod
      (                  y        i            ,      τ        )    =            y      i        -                  ⌊                                            y              i                        +                          τ              /              2                                τ                ⌋            ⁢      τ      similar to equation (5), which is applied separately for real and imaginary part.
The precoded vector s in equation (15) can be calculated in block 84 as follows:s=W s  (20)
The next block 86 represents division by √{square root over (γ)}, which is a normalisation step. The resultant vector x is re-multiplied by the channel matrix H (in block 88), to which is added a noise vector n. In block 90, the resultant vector y is re-multiplied by the square root of the normalisation factor γ and then modulo τ is applied to arrive at the perturbed data vector û.
In most MIMO communication systems, pilot symbols are transmitted together with the data symbols by the transmitter to assist the receiver in performing channel estimation or provide information such as frequency offset or phase rotation. Essentially, the pilot signals enable the receiver to perform accurate estimation of the time varying channel, thereby resulting in a reduced bit error rate (BER). The pilot symbols can either be transmitted continuously or periodically with the data symbols, depending on the application in which the pilot symbols are implemented.
Generally, when precoding is applied, the pilot symbols and the data symbols are precoded using the same technique to provide information about the effective channel. This information can be initially estimated by, for example a preamble which is known at the receiver, and the pilots symbols are provided to keep track of this information in order to allow the receiver to estimate the channel. However, if the actual channel knowledge is required by the receivers, unprecoded pilot will need to be transmitted. Unprecoded pilots are generally referred to as “common pilots”, as these pilots provide channel estimation information for all the receivers in the wireless network. Conversely, pilots for estimating the effective channel are called “dedicated pilots”, as these pilots provide information to a specific user in the MIMO network.
IEEE 802.11n/D2.0. “Draft Amendment to Standard for Information Technology—Telecommunications and information exchange between systems—Local and Metropolitan networks—Specific requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Enhancements for Higher Throughput,” IEEE Std 802.11, February 2007, discloses a method of estimating channel parameters concurrently in a multi-carrier MIMO system. A plurality of pilot symbol vectors are transmitted together with a plurality of data symbols vectors over the communication channel. A pilot vector contains only pilot symbols. The MIMO receiver estimates the communication channel based on a preamble in this example, and the pilot vectors are used to track frequency offset and other time-varying and/or frequency dependent parameters such as phase errors and rotation, and the like, during the current frame, which consists of several OFDM symbols. In addition, beamforming can be used at the transmitter when a beamforming matrix is applied prior to transmission, thus linear precoding is employed. Since both pilot subcarriers and data subcarriers are precoded, the pilots are dedicated to the receiving UT.
Although the example above relates to an OFDM MIMO system, it would be appreciated by skilled reader that similar techniques can also be applied in an Orthogonal frequency-division multiple access (OFDMA) MIMO system, where subcarriers in frequency domain can be allocated to multiple users, possibly having different precoders for their respective subcarriers.
It is noted that existing methods apply the same precoding technique to precode the dedicated pilot vector and the data symbols vector. The existing methods are also applicable to a MU-MIMO system employing linear precoding, where the transmitter separates the spatial streams reasonably well, such that the UTs in the same time-frequency resource can receive and decode their respective spatial stream or streams independently from each other. Conventional pilot vectors as described in the previous example can be used for example to track frequency offset, phase errors, phase rotation, and in particular the channel gain in order to decode the received symbols.
An important requirement for the arrangement of the pilot vectors is that the pilot symbols and position are known by the transmitter and the receiver. When nonlinear precoding is used upon data and pilot subcarriers, the pilot symbols are not unique, since any non-zero perturbation element in equation (4) for a pilot vector will change the pilot signal. Thus the receiver does not know the pilot value and cannot estimate necessary parameters for data decoding.
A method of overcoming this problem is to apply linear precoding to the dedicated pilot subcarriers and to apply non-linear precoding to the data subcarriers independently. FIG. 6 illustrates the steps of applying precoding to the data subcarriers and the pilot subcarriers in accordance with the prior art. The method commences in step 100 with an application of data perturbation to the data vector. In step 102, non-linear precoding is applied to the data subcarriers to generate a precoded data vector, which is achieved by applying the precoding matrix to the perturbed data vector. The dedicated pilot subcarriers are precoded by applying linear precoding thereto (step 104).
FIG. 7 illustrates the allocation of pilot symbols based on existing techniques commonly used in the prior art. In FIG. 7, the data transmission frame 110 comprises F number of subcarriers 112. Each of the subcarriers comprises a data vector containing either pilot symbols or data symbols. As shown in FIG. 7, the subcarriers are divided into K spatial streams, each of which comprises either a pilot symbol or a data symbol, depending on whether that subcarrier is allocated to the pilot symbols or the data symbols. In this prior art example, two of the subcarriers 112-d and 112-F are allocated to the pilot symbols and the remaining subcarriers (for example: 112-a, 112-b, 112c and so on) are allocated to the data symbols. However, one of the major drawbacks of using this method is that the entire subcarrier is allocated to the pilot symbols. Therefore, this can result in substantial increase in transmit power of the pilot subcarriers compared to the nonlinearly precoded data symbols. When the normalisation of a transmission is performed with an average γ over all subcarriers or a resource block consisting of data and pilot subcarriers, the increased in transmit power of the pilot subcarriers will consequently result in less power being available for the data subcarriers. Moreover, the system performance can further deteriorate if more pilot subcarriers are applied, resulting in the transmission approaching a pure linear precoded transmission.